package com.wk.code.wkserver.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wk.code.wkserver.entity.SysUser;
import com.wk.code.wkserver.request.admin.SysUserRequest;
import com.wk.code.wkserver.response.admin.SysUserPageResponse;
import com.wk.code.wkserver.response.admin.SysUserResponse;
import com.wk.code.wkserver.response.base.PageInfo;

/**
 * <p>
 * 运营后台用户表 服务类
 * </p>
 *
 * @author wq
 * @since 2021-07-19
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 登录
     *
     * @param request 请求参数
     * @return Token
     */
    SysUserResponse login(SysUserRequest request);


    /**
     * 分页
     *
     * @param request 请求参数
     * @return PageInfo<SysUser>
     */
    PageInfo<SysUserPageResponse> page(SysUserRequest request);


    /**
     * 更新系统用户
     *
     * @param request SysUserRequest
     */
    void updateSysUser(SysUserRequest request);


    /**
     * 退出登录
     */
    void logout();

    /**
     * 用户注册
     *
     * @param request 请求参数
     */
    void register(SysUserRequest request);

    /**
     * 添加用户
     *
     * @param req 请求参数
     */
    void addUser(SysUserRequest req);

    /**
     * 随机一个客服
     *
     * @return SysUser
     */
    SysUser randCustomer();

    /**
     * 查询超级管理员
     *
     * @return 系统用户
     */
    SysUser selectAdminUser();

    /**
     * 查询该系统用户的权限
     *
     * @param sysUserId 用户ID
     */
    String selectUserRole(Integer sysUserId);

    /**
     * 查询系统用户
     *
     * @param mobile 手机号
     * @return SysUser
     */
    SysUser selectUserId(String mobile);
}
